#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QCamera>
#include <QCameraImageCapture>
#include <QCameraViewfinder>
#include <QByteArray>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT
signals:
    // 信号，用于通知各步骤的完成
    void accessTokenReady();  // 获取 Access Token 成功
    void faceDetected(int result);  // 人脸检测完成
    void faceSearched(int result);  // 人脸搜索完成
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();


private slots:
    void captureImage();//超时捕获照片
    void processCapturedImage(int id, const QImage &preview);
    // 槽函数，用于处理各个步骤的完成
    void onAccessTokenReceived();  // Access token 获取成功后触发
    void onFaceDetected(int result);  // 人脸检测完成后触发
    void onFaceSearched(int result);  // 人脸搜索完成后触发


private:
    Ui::Widget *ui;
    QCamera *camera;
    QCameraImageCapture *capture;
    QCameraViewfinder *viewfinder;
    void setupCamera();
    void detectFace(const QByteArray &base64Image);
    int processFaceDetectionResponse(const QByteArray &response_data);
    QString access_token;
    QByteArray capturedImage;
    void getAccessToken();
    int searchFace(const QByteArray &base64Image);
    int processFaceSearchResponse(const QByteArray &response_data);

};
#endif // WIDGET_H
